-
Notifications
You must be signed in to change notification settings - Fork 15.2k
[LLDB] Add log channel for InstrumentationRuntime plugins #168508
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[LLDB] Add log channel for InstrumentationRuntime plugins #168508
Conversation
|
@llvm/pr-subscribers-lldb Author: Dan Liew (delcypher) ChangesThis patch adds A small use of the channel is added to illustrate its use. The logging added is not intended to be comprehensive. This is primarily motivated by an rdar://164920875 Full diff: https://github.com/llvm/llvm-project/pull/168508.diff 3 Files Affected:
diff --git a/lldb/include/lldb/Utility/LLDBLog.h b/lldb/include/lldb/Utility/LLDBLog.h
index 18e4a3ca73507..ac360bfdf8cee 100644
--- a/lldb/include/lldb/Utility/LLDBLog.h
+++ b/lldb/include/lldb/Utility/LLDBLog.h
@@ -50,7 +50,8 @@ enum class LLDBLog : Log::MaskType {
OnDemand = Log::ChannelFlag<31>,
Source = Log::ChannelFlag<32>,
Disassembler = Log::ChannelFlag<33>,
- LLVM_MARK_AS_BITMASK_ENUM(Disassembler),
+ InstrumentationRuntime = Log::ChannelFlag<34>,
+ LLVM_MARK_AS_BITMASK_ENUM(InstrumentationRuntime),
};
LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE();
diff --git a/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp b/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp
index 38c334bfb78ac..8b3702335d012 100644
--- a/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp
+++ b/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp
@@ -199,6 +199,7 @@ bool ReportRetriever::NotifyBreakpointHit(ProcessSP process_sp,
StoppointCallbackContext *context,
user_id_t break_id,
user_id_t break_loc_id) {
+ auto *log = GetLog(LLDBLog::InstrumentationRuntime);
// Make sure this is the right process
if (!process_sp || process_sp != context->exe_ctx_ref.GetProcessSP())
return false;
@@ -207,8 +208,10 @@ bool ReportRetriever::NotifyBreakpointHit(ProcessSP process_sp,
return false;
StructuredData::ObjectSP report = RetrieveReportData(process_sp);
- if (!report || report->GetType() != lldb::eStructuredDataTypeDictionary)
+ if (!report || report->GetType() != lldb::eStructuredDataTypeDictionary) {
+ LLDB_LOGF(log, "ReportRetriever::RetrieveReportData() failed");
return false;
+ }
std::string description = FormatDescription(report);
diff --git a/lldb/source/Utility/LLDBLog.cpp b/lldb/source/Utility/LLDBLog.cpp
index 613dae42064a8..a08764d84edd2 100644
--- a/lldb/source/Utility/LLDBLog.cpp
+++ b/lldb/source/Utility/LLDBLog.cpp
@@ -67,6 +67,9 @@ static constexpr Log::Category g_categories[] = {
{{"disassembler"},
{"log disassembler related activities"},
LLDBLog::Disassembler},
+ {{"instrumentation-runtime"},
+ {"log instrumentation runtime plugin related activities"},
+ LLDBLog::InstrumentationRuntime},
};
static Log::Channel g_log_channel(g_categories,
|
🐧 Linux x64 Test Results
|
lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp
Outdated
Show resolved
Hide resolved
Michael137
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense
Surprised we haven't logged anything from InstrumentationRuntime before
JDevlieghere
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with Michael's comment addressed.
|
LGTM also. |
94f1518 to
40e7cf2
Compare
This patch adds `LLDBLog::InstrumentationRuntime` as a log channel to provide an appropriate channel for instrumentation runtime plugins as previously one did not exist. A small use of the channel is added to illustrate its use. The logging added is not intended to be comprehensive. This is primarily motivated by an `-fbounds-safety` instrumentation plugin (swiftlang#11835). rdar://164920875
40e7cf2 to
c8cffb1
Compare
This patch adds `LLDBLog::InstrumentationRuntime` as a log channel to provide an appropriate channel for instrumentation runtime plugins as previously one did not exist. A small use of the channel is added to illustrate its use. The logging added is not intended to be comprehensive. This is primarily motivated by an `-fbounds-safety` instrumentation plugin (swiftlang#11835). rdar://164920875 (cherry picked from commit 46565f3)
This patch adds
LLDBLog::InstrumentationRuntimeas a log channel to provide an appropriate channel for instrumentation runtime plugins as previously one did not exist.A small use of the channel is added to illustrate its use. The logging added is not intended to be comprehensive.
This is primarily motivated by an
-fbounds-safetyinstrumentation plugin (swiftlang#11835).rdar://164920875